import pandas as pd

# (1) 一维对象的合并
# 创建 sr1 和 sr2
v1 = [10, 20, 30, 40]
v2 = [40, 50, 60]
k1 = [ '1 号', '2 号', '3 号', '4 号' ]
k2 = [ '4 号', '5 号', '6 号' ]
sr1 = pd.Series( v1, index= k1 )
sr2 = pd.Series( v2, index= k2 )
print(sr1)
"""
1 号    10
2 号    20
3 号    30
4 号    40
dtype: int64
"""
print(sr2)
"""
4 号    40
5 号    50
6 号    60
dtype: int64
"""
print(pd.concat([sr1,sr2]))
"""
1 号    10
2 号    20
3 号    30
4 号    40
4 号    40
5 号    50
6 号    60
dtype: int64
"""

#（2）一维对象与二维对象的合并
# 创建 sr1 与 sr2
v1 = [ 10, 20, 30]
v2 = [ '女', '男', '男']
sr1 = pd.Series( v1, index=[ '1 号', '2 号', '3 号'] )
sr2 = pd.Series( v2, index=[ '1 号', '2 号', '3 号'] )
# 创建 df
df = pd.DataFrame( { '年龄':sr1, '性别':sr2 } )
print(df)
"""
     年龄 性别
1 号  10  女
2 号  20  男
3 号  30  男
"""
# 其次，为二维对象加上一列特征，可以是列表、数组、张量或一维对象。
# 加上一列
df['牌照'] = [1, 2, 3]
print(df)
"""
     年龄 性别  牌照
1 号  10  女   1
2 号  20  男   2
3 号  30  男   3
"""
# 最后，为二维对象加上一行个体，可以是列表、数组、张量或一维对象。
# 加上一行
df.loc['4 号'] = [40, '女', 4]
print(df)
"""
     年龄 性别  牌照
1 号  10  女   1
2 号  20  男   2
3 号  30  男   3
4 号  40  女   4
"""


#（3）二维对象的合并
# 设定 df1、df2、df3
v1 = [ [10, '女'], [20, '男'], [30, '男'], [40, '女'] ]
v2 = [ [1, '是'], [2, '是'], [3, '是'], [4, '否'] ]
v3 = [ [50, '男', 5, '是'], [60, '女', 6, '是'] ]
i1 = [ '1 号', '2 号', '3 号', '4 号' ]
i2 = [ '1 号', '2 号', '3 号', '4 号' ]
i3 = [ '5 号', '6 号' ]
c1 = [ '年龄', '性别' ]
c2 = [ '牌照', 'ikun' ]
c3 = [ '年龄', '性别', '牌照', 'ikun' ]
df1 = pd.DataFrame( v1, index=i1, columns=c1 )
df2 = pd.DataFrame( v2, index=i2, columns=c2 )
df3 = pd.DataFrame( v3, index=i3, columns=c3 )
print(df1)
"""
     年龄 性别
1 号  10  女
2 号  20  男
3 号  30  男
4 号  40  女
"""
print(df2)
"""
     牌照 ikun
1 号   1    是
2 号   2    是
3 号   3    是
4 号   4    否
"""
print(df3)
"""
     年龄 性别  牌照 ikun
5 号  50  男   5    是
6 号  60  女   6    是
"""
# 合并列对象（添加列特征）
df = pd.concat( [df1,df2], axis=1 )
print(df)
"""
     年龄 性别  牌照 ikun
1 号  10  女   1    是
2 号  20  男   2    是
3 号  30  男   3    是
4 号  40  女   4    否
"""
df = pd.concat( [df,df3], axis=0 )
print(df)
"""
     年龄 性别  牌照 ikun
1 号  10  女   1    是
2 号  20  男   2    是
3 号  30  男   3    是
4 号  40  女   4    否
5 号  50  男   5    是
6 号  60  女   6    是
"""